今天,我們來聊聊昨天沒有講完的檔案權限!
首先,我們注意到前面的符號。
根據 man
的說明,第一個符號的意義如下
The file mode printed under the -l option consists of the entry type and the permissions. The entry type character describes the type of file, as
follows:
- Regular file.
b Block special file.
c Character special file.
d Directory.
l Symbolic link.
p FIFO.
s Socket.
w Whiteout.
比較常見到的是區分資料夾(d)和一般的檔案(-),
像是昨天文章內的 .bash_history
-rw------- 1 ec2-user ec2-user 2146 Sep 5 14:46 .bash_history
就是一般檔案
而 .ssh
drwx------ 2 ec2-user ec2-user 29 Apr 19 2021 .ssh
就是資料夾了。
接著後面的部分,就是討論檔案的權限了,我們一樣問問 man
:
The next three fields are three characters each: owner permissions, group permissions, and other permissions.
首先,我們先將權限分成三大類
前面三個,所代表的是這個檔案的擁有者所具有的權限。
緊接著的三個,所代表的是與檔案處於相同群組( group)的使用者,所擁有的權限。
最後三個,是其他使用者所使用的權限。
怪不得我們昨天還納悶,為什麼要寫兩次擁有者的名字。原來是因為剛好同時有兩個群組,也叫做 root
和 ec2-user
,所以導致看起來像是一樣的稱呼寫了兩次。
我們可以看到,有的檔案前面有 r
的字樣,那就是允許可以讀取的權限,w
的部分則是寫入的權限,x
的部分則是執行的權限。
要更換檔案的群組,我們可以使用 chgrp
這個指令:
NAME
chgrp - change group ownership
我們先用 sudo so
將自己切換為 root
身份
然後嘗試更改 .bash_history
的群組
chgrp root .bash_history
ls -al
-rw------- 1 ec2-user root 2355 Sep 8 02:33 .bash_history
可以看到,我們成功地將檔案的群組改成 root
了
如果要更改檔案的擁有者的話,我們可以用 chown
這個指令:
NAME
chown - change file owner and group
嘗試更改 .bash_history
的擁有者看看
chown root .bash_history
ls -al
-rw------- 1 root root 2355 Sep 8 02:33 .bash_history
好了!我們成功的修改了檔案的擁有者!
測試過後記得將檔案的權限改回 ec2-user
chgrp ec2-user .bash_history
chown ec2-user .bash_history
今天我們的分享先到這邊,各位明天見!